package com.alan.springbootwp.util;

import com.alan.springbootwp.model.Menu;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Alan
 * @Description 创建菜单
 * @date 2020年04月21日 15:10
 */
@Slf4j
public class MenuUtil {

    /**
     * 创建菜单
     *
     * @return 0表示成功，其他值表示失败
     */
    public static int createMenu() {
        int result = 0;
        String requestUrl = WeChatConstant.CREATE_MENU_URL.replace("ACCESS_TOKEN", TokenUtil.getAccessToken().getAccessToken());
        String menuStr = JSON.toJSONString(buildMenuTree());
        log.info(menuStr);
        JSONObject resultJson = HttpUtil.sendRequest(requestUrl, "POST", menuStr);

        if (null != resultJson) {
            try {
                if (0 != resultJson.getIntValue("errcode")) {
                    result = resultJson.getIntValue("errcode");
                    log.error("创建菜单失败 errcode:{} errmsg:{}" + resultJson.getIntValue("errcode") + resultJson.getString("errmsg"));
                } else {
                    log.info("菜单创建成功");
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        return result;
    }

    // 构造菜单树结构
    private static Map buildMenuTree() {
        Map menuMap = new HashMap();

        List<Menu> menuList = new ArrayList();

        Menu menu1=new Menu();
        menu1.setName("开始");
        menu1.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu1.setKey("V1001_TODAY_MUSIC");
        menuList.add(menu1);


        Menu menu2=new Menu();
        menu2.setName("菜单");

        List<Menu> menuLists2 = new ArrayList();
        Menu menu20=new Menu();
        menu20.setName("百度搜索");
        menu20.setType(WeChatConstant.MENU_TYPE_VIEW);
        menu20.setUrl("http://www.baidu.com/");
        menuLists2.add(menu20);

        Menu menu21=new Menu();
        menu21.setName("搜狗搜索");
        menu21.setType(WeChatConstant.MENU_TYPE_VIEW);
        menu21.setUrl("http://www.soso.com/");
        menuLists2.add(menu21);


        Menu menu22=new Menu();
        menu22.setName("赞一下我们");
        menu22.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu22.setKey("V1001_GOOD");
        menuLists2.add(menu22);
        menu2.setSub_button(menuLists2);

        menuList.add(menu2);

        Menu menu3=new Menu();
        menu3.setName("Alan");

        List<Menu> menuLists3 = new ArrayList();
        Menu menu30=new Menu();
        menu30.setName("图片");
        menu30.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu30.setKey("V1001_00");
        menuLists3.add(menu30);
        Menu menu31=new Menu();
        menu31.setName("语音");
        menu31.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu31.setKey("V1001_01");
        menuLists3.add(menu31);
        Menu menu32=new Menu();
        menu32.setName("视频");
        menu32.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu32.setKey("V1001_02");
        menuLists3.add(menu32);
        Menu menu33=new Menu();
        menu33.setName("音乐");
        menu33.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu33.setKey("V1001_03");
        menuLists3.add(menu33);
        Menu menu35=new Menu();
        menu35.setName("图文");
        menu35.setType(WeChatConstant.MENU_TYPE_CLICK);
        menu35.setKey("V1001_04");
        menuLists3.add(menu35);

        menu3.setSub_button(menuLists3);

        menuList.add(menu3);

        menuMap.put("button", menuList);
        log.info(JSON.toJSONString(menuMap));

        return menuMap;
    }

}
